<template>
  <div class="import">
    <el-card>
      <h2 style="text-align: center">员工导入</h2>
      <upload-excel :before-upload="beforeUpload" :on-success="onSuccess" />
    </el-card>
  </div>
</template>

<script>
import moment from 'moment'
import { sysUserPut } from '@/api/employees'
export default {
  methods: {
    // 返回boolean值,解析前的判断,文件大小,文件类型是否符合规范
    beforeUpload() {
      return true
    },
    // 解析后返回的回调函数,包含了上传的数据信息
    async onSuccess(obj) {
      //   console.log(obj)
      // 存储返回的数据
      const newArr = obj.results.map((item) => {
        const newObj = {}
        const temp = {
          入职日期: 'timeOfEntry', // string	非必须		入职时间
          姓名: 'username', // string	非必须		姓名
          工号: 'workNumber', // string	非必须		工号
          手机号: 'mobile', // string	非必须		手机号
          转正日期: 'correctionTime' // string	非必须		转正时间
        }
        Object.keys(item).forEach((item2) => {
          // 转换excel时间
          if (item2 === '入职日期' || item2 === '转正日期') {
            newObj[temp[item2]] = this.changeDate(item[item2])
          } else {
            newObj[temp[item2]] = item[item2]
          }
        })
        // console.log(newObj)
        return newObj
      })
      //   console.log(newArr)
      // 调用导入员工接口
      await sysUserPut(newArr)
      this.$message.success('导入员工成功!')
      this.$router.push('/employees')
    },
    // 定义一个修改excel时间方法
    changeDate(num) {
      // excel时间特性: 从1900年开始,以1为单位,从8时开始计算
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      // 将excel的年份转换成js的年份
      t.setFullYear(t.getFullYear() - 70)
      return moment(t).format('YYYY-MM-DD')
    }
  }
}
</script>

<style lang="scss" scoped>
.import {
  padding: 15px;
  margin: 0 auto;
}
</style>
